// 浏览器中的js是没有文件操作的能力的
// 但是Node中的js是具有文件操作的能力

// fs是file-system的简写，就是文件系统的意思
// 在node中如果想要进行文件操作，就必须引入fs这个核心模块
// 在fs这个核心模块中，就提供了所有的文件操作相关的api

// 例如:fs.require就是用来读取文件的

// 1.使用require方法加载fs核心模块
var fs = require('fs')

// 2.读取文件
// 第一个参数就是要读取的文件路径
// 第二个参数是一个回调函数
// 回调函数接收两个参数 error  data
// error
//  如果读取失败，error就是错误对象
//  如果读取成功，error就是null
// data 
//  如果读取成功, data就是读取到的数据
//  如果读取失败, error就是错误对象
fs.readFile('./hello.txt', function (error, data) {
    // console.log(data.toString())
    // <Buffer 68 65 6c 6c 6f 20 6e 6f 64 65 6a 73>
    // 文件中存储的其实都是二进制数据 0 1
    // 这里为什么看到的不是0和1呢？原因是二进制转为16进制了
    // JavaScript 语言自身只有字符串数据类型，没有二进制数据类型
    // 但在处理像TCP流或文件流时，必须使用到二进制数据。因此在 Node.js中，定义了一个 Buffer 类, 该类用来创建一个专门存放二进制数据的缓存区

    // console.log(error)
    // console.log(data)

    // 在这里就可以通过判断error来确认是否有错误发生
    if (error) {
        console.log('读取文件失败了')
    } else {
        console.log(data) // <Buffer 68 65 6c 6c 6f 20 6e 6f 64 65 6a 73>
        console.log(data.toString()) // hello nodejs      你好 nodejs
    }
})

fs.readFile('./1.mp4',function(error,data) {
    if(error) {
        console.log(error)
    } else {
        console.log(data)
    }
})

